<?php


class DataBase {
    public $mysql_host;
    public $mysql_database;
    public $mysql_user;
    public $mysql_password;
    
    function DataBase() {
        $this->mysql_host = "localhost";
        $this->mysql_database = "test";
        $this->mysql_user = "root";
        $this->mysql_password = "";
    }

    
    /*
     * Lanza una sentencia a la base de datos y captura posibles errores.
     * @returns:  el retorno de mysql_query (ver documentacion PHP).
     */

    function query($string){
        $con = mysql_connect($this->mysql_host, $this->mysql_user, $this->mysql_password);
        if (!$con){
            die('Could not connect: ' . mysql_error());
        }
        
        mysql_select_db($this->mysql_database);

        $return = mysql_query($string);
        
        if (!$return){
            echo "MySQL Query error: " . mysql_error() . "<br><br>";
        }
       
        return $return;
    }
    
    
    /*
     * Con la id y el codigo de activacion, activamos el usuario por defecto 
     * o podemos asignarle otro estado.
     * $id, y $codigo parametros obligatorios para identificar el ususario.
     
     * @returns: NADA.
     */
    
    
    function activarUsuario($id,$codigo,$estado="1") {
        return ($this->query("UPDATE usuarios SET activo=$estado WHERE id='$id' AND codigo_activacion='$codigo")); 
    }
    
    
    
    /*
     * Comprueba que un usuario existe apartir de su email.
     * @returns: true si existe el usuario, false si no existe
     */
    function checkLogin($mail,$pass) {
        $query = "SELECT * FROM usuarios WHERE mail = '$mail' AND password = '".md5($pass)."' AND activo=1";
//        echo $query."<br>";
        $result = $this->query($query);
        //si no hay resultados es que el usuario no existe
        //echo "numero de elems: ".mysql_num_rows($result)."<br>";
        if (mysql_num_rows($result) == 0) return false;
        else                              return true;
    }
    
    
    /*
     * Devuelve los elems del mapa.
     * @returns: resultset de elems.
     */
    function generarXmlMarkers($center_lat,$center_lng,$distancia=5){
//        $sql = "SELECT * FROM info_elem";
        $sql = "SELECT * FROM (

                    SELECT * , (
                            ACOS( SIN( RADIANS( lat ) ) * SIN( RADIANS( $center_lat ) ) + COS( RADIANS( lat ) ) * COS( RADIANS( $center_lat ) ) * COS( RADIANS( $center_lng ) - RADIANS( lng ) ) ) *6378
                    ) AS distancia
                    FROM info_elem) AS todas
                WHERE ";
        
        if ($distancia!=5) $sql.= " todas.distancia > $distancia ";
        else               $sql.= " todas.distancia > 5 "; 
        
                    
        $sql .= "LIMIT 0 , 5";
        
        //echo $sql."<br>";
        
        return $this->query($sql) ;
    }
    
}
    
//
//SELECT * 
//FROM (
//
//SELECT * , (
//ACOS( SIN( RADIANS( lat ) ) * SIN( RADIANS( 41.1136584 ) ) + COS( RADIANS( lat ) ) * COS( RADIANS( 41.1136584 ) ) * COS( RADIANS( 1.2483045000000175 ) - RADIANS( lng ) ) ) *6378
//) AS distancia
//FROM info_elem
//) AS fuck
//WHERE fuck.distancia >5

?>
